ד, ר עמיר תומר

Similar documents
הנדסת תוכנה פרק 8 הנדסת תוכנה

Software Life-Cycle Models מודלים של מחזור חיי תוכנה - 1

הנדסת תוכנה פרק 9. Prof. Amir Tomer הנדסת תוכנה 1 תכן תוכנה מונחה עצמים

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

Practical Session No. 13 Amortized Analysis, Union/Find

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

מבוא לתכנות ב- JAVA תרגול 7

המבנה הגאומטרי של מידה

State Pattern מימוש מכונת מצבים (FSM) מבוא בעיה תמיכה ועדכונים עדכון מס' 48 מאי 2002

ASP.Net MVC + Entity Framework Code First.

הטכנולוגיה בחינוך ד ר קובי גל אוניברסיטת בן גוריון בנגב

מה עומד על הפרק? הגדרת Requirements Definition דרי שות , ד" ר ע מיר תו מר ר ע מיר תו מר מבוא הגדרת דרישות - 2 הגדרת דר יש ות

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

תרגול 11 תור עץ חיפוש בינארי

Iris Levari Security Consultant CISSP ISC 2 CISSP Lead lecturer ISO LA מבדקי חדירה ופיתוח מאובטח

מיהו המורה הנושר? מאפיינים דמוגרפיים,תעסוקתיים ומוסדיים של הנשירה מהוראה

הנדסת תוכנה פרק 10 הנדסת תוכנה

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

A Long Line for a Shorter Wait at the Supermarket

A R E Y O U R E A L L Y A W A K E?

Parts of Speech

מבוא למחשב בשפת פייתון

מ ק ו מ ו ת 5 מ י נ ה ל כ ס פ י ו מ ו ר י ה ח ב ר ה ל פ י ת ו ח י ר ו ש ל י ם ב ע מ מ ב ו א כ ל ל י ב ש נ ת, ב מ ס ג ר ת ח ג י ג ו ת י

Patents Basics. Yehuda Binder. (For copies contact:

Design Patterns מאיר סלע מהדורה ראשונה 2004 הדפסה 1 כל הזכויות שמורות

מטוסים נופלים, כורים מתפוצצים זיכרון אוטומטי מקטסטרופות לומדים בניינים קורסים,

שפת תיאור חומרה VHDL

הקיטסיגול הרבחה יעדמל בלושמה גוחה

Reflection Session: Sustainability and Me

ASTM UL / FM / BS abesco

שיטות בהנדסת תוכנה )236321(

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

שאלון ד' הוראות לנבחן


אנגלית (MODULE E) בהצלחה!

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

byte code :(compiler) .class מהדר בתהליך עורך, סייר, קומפיילר,,JRE וכו'. למשל: אקליפס. נקודות חשובות: חסכון בהקצאת זיכרון.

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

שאלון ו' הוראות לנבחן

קורס תוכנת מטלב ויישומיה שיעור מס' 10: תכנות ממשקי משתמש

ניתוח מערכות מידע בסביבות טכנולוגיות מתקדמות כולל עולמות Mobile, Agile, Cyber, BI & Big Data

Theories of Justice

Depth-First Search DFS

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

הקיטסיגול הרבחה יעדמל בלושמה גוחה

תיק )מסמך( אפיון ת ו כ ן ה ע נ י י נ י ם 0. מנהלה 1. יעדים 2. יישום - מהות המערכת 3. טכנולוגיה ותשתית 4. מימוש 5. עלות משאבים נספחים

מבוא לתרבות סייבר שיעור מס

מ ש ר ד ה ח י נ ו ך ה פ ד ג ו ג י ת א ש כ ו ל מ ד ע י ם על ה ו ר א ת ה מ ת מ ט י ק ה מחוון למבחן מפמ"ר לכיתה ט', רמה מצומצמת , תשע"ב טור א'

מדריך למשתמש בשירות. yes MultiRoom

2007 Zindell Technologies, Ltd.

תרגומון אנגלי-עברי למונחים מקצועיים בניהול פרויקטים

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

מבו א ל- VHDL אז מה י ה י ה לנ ו ה י ו ם... מהי שפת הגדרת חומרה ולשם מה דרושה תיאור, סימולציה, סינתזה

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

sharing food intro price & extra drinks * ניתן להזמין מנות כשרות בתאום מראש for good memories

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי )

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

שאלון ו' הוראות לנבחן

Requirements Definition and Management

איתור במחסן הוא יחידת המרחב הקטנה ביותר שניתן להתייחס אליה, במחסן שבו מאוחסנות הסחורות שלך. מחסנים שורה 1 שורה 2 שורה 3

חוק זכויות הסוכן חוק חוזה סוכנות )סוכן מסחרי וספק(

תוכנה 1 בשפת Java שיעור מספר 8: "ירושה נכונה" בית הספר למדעי המחשב אוניברסיטת תל אביב

THINKING ABOUT REST THE ORIGIN OF SHABBOS

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

Expressions (ex 8) Wild World (ex 7) Cars (ex 9)

(MODULE E) ב ה צ ל ח ה!

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

מדריך למשתמש התקנה עצמית

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

נילי חמני

הקדמה פרופ' מוטי בן-ארי המחלקה להוראת המדעים מכון ויצמן למדע

תמ מהו הקדמה פרופ' מוטי בן-ארי. Peter תמ"ע = עצמים + מחלקות + ירושה. תמ"ע "לייט" לבין תמ"ע אמיתי. Turbo Pascal

סמסטר אביב 2015, מועד ב' סמסטר קיץ 2015, מועד א' מתרגלים: אביב - נורית מושקוביץ', הלאל עאסי, אלירן וייס; קיץ מאיה דיאמנט

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

כ"ג אלול תשע"ו - 26 ספטמבר, 2016 Skills Worksheet #2

מנגנון 5522 מידע על המנגנון מצב תצוגת שעה

SEEDS OF GREATNESS MINING THROUGH THE STORY OF MOSHE S CHILDHOOD

מבחן באנגלית בהצלחה הצלחה!!! שם פרטי: שם משפחה: מס' תעודת זהות: תאריך: שם מרכז מנהל מרכז השכלה: תאריך בדיקת המבחן: כל הזכויות שמורות למשרד החינוך

Name Page 1 of 5. ,דף ד: This week s bechina starts at the bottom of שיר של חול

לשרטוט חשמלי בתוכנת OrCad-Capture

מספר ת"ז: יש לסמן את התשובה הטובה ביותר בתשובון. לא יינתן ניקוד על סימון תשובה בטופס הבחינה או במחברת הבחינה.

ניהול שינויים ה מ ד ר י ך

Genetic Tests for Partners of CF patients

מדריך שימוש והתקנה של office

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

חטיבת המינרלים החיוניים תתמקד בשוקי האגרו וחטיבת הפתרונות המיוחדים תשמש כחטיבה התעשייתית; כיל דשנים מיוחדים תשולב בחטיבת המינרלים החיוניים;

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

מדריך לניהול VPS טריפל סי מחשוב ענן בע"מ.

Name Page 1 of 5. דף ז. This week s bechina begins with the fifth wide line at the top of

th Maccabiah ספר מיתוג

eriktology The Writings Book of Ecclesiastes [1]

Transcription:

מונחה-עצמים תוכנה תכן Object-Oriented Oriented Software Design ד, תכן מונחה עצמים - 1

ד, תכן התוכנה פעילות קלט ארכיטקטורת התוכנה מודל רכיבים (component model) מפרט תהליכי התוכנה sequence models use case model עיקריים תוצרים מבנה וארגון התוכנה מודל מחלקות model) (class תהליכי תוכנה מפורטים מודל מכונת מצבים model) (state machine מודל רצפים model) (sequence זמן בדיקות מערכת בסביבת התפעול שילוב חומרה / תוכנה ובדיקות מערכת שילוב רכיבים ובדיקות פריטים שילוב יחידות ובדיקות רכיבים מימוש, שילוב ובחינה Implementation, Integration and Testing קידוד ובדיקת יחידות תכן תוכנה ניתוח וארכיטקטורת תוכנה ניתוח וארכיטקטורת מערכת הגדרת דרישות הלקוח ובעלי העניין System הגדרה ופירוט Definition and Specification רמת עניין Business Software CSC CSCI CSU תכן מונחה עצמים - 2

פונקציונליות דרישות פונקציונליות לא ודרישות - תזכורת מרחב הפתרון דרישות לא-פונקציונליות / דרישות פונקציונליות תכן ד, מימוש פונקציונליות לא דרישות אופן מאפיינים ואילוצים על מגדירות תכולת הפתרון מימוש פונקציונליות דרישות מקבלות מענה כאשר הפתרון הנבחר (התכן/המימוש) עומד ובאילוצים המוגדרים במאפיינים הפתרון תכולת את מגדירות מקבלות מענה ספציפי וישיר בתוך הפתרון (התכן/המימוש) הגדרה וניהול של דרישות - 3

ד, דרישות/החלטות המשפיעות על התכן דרישות הוא הפעילות בה נקבעים פרטי המימוש התכן נדרש לקבל החלטות לגבי חלופות מימוש שונות לקבלת ההחלטות הבסיס אילוצים אילוצי תכן שנקבעו בדרישות אילוצים ניהוליים שנקבעו בדרישות אילוצי המפתח (זמינות טכנולוגית, החלטות שהתקבלו בשלבים קודמים ארכיטקטורה מערכתית חומרה זמינות משאבים, הפונקציונליות נועד להציע דרך למימוש הדרישות התכן הלא-פונקציונליות מתן מענה לדרישות תוך? דרישות שימוש חוזר וכו') תכן מונחה עצמים - 4

דרישות/החלטות אופייניות עבור תכן התוכנה דרישות ד,... החומרה סוג המחשבים, ההפעלה מערכת ארכיטקטורת החומרה, תקשורת אופן הקריאה לשרותי מעה פ מתוך התוכנה, תהליכים התכנות שפת טיפוסים, מבני בקרה, פונקציות בנויות, תמיכה בתהליכים, סטנדרטים למשל CORBA,.Net, TCP/IP מוצרי מדף שילוב למשל GIS = Geographic Information System מערכת קיימת שילוב (legacy system) בסיסי נתונים קיימים, חומרה קיימת תכן מונחה עצמים - 5

העניינים תוכן ד, דרישות / החלטות המשפיעות על התכן וארגון התוכנה מבנה התבנית מונחית-העצמים מודל המחלקות תוכנה מפורטים תהליכי (class model) מודל רצפים model) (sequence ברמת התוכנה מודל מכונת מצבים (state machine model) UML סיכום תכן מונחה עצמים - 6

ד, (structured [קלאסית] structured) מבנית תוכנה מבנה ביצוע הפרדת המידע (data) מהפונקציונליות עץ קריאות בין מודלים כל מודול מבצע מניפולציות על המידע (מידע) נתונים מבני (פונקציות/תהליכים) מבנית תכנית תכנית משנית תכנית ראשית תכנית משנית שגרה / פונקציה שגרה / פונקציה קריאות תכנית משנית שגרה / פונקציה Open(F) Open Save(D,F) Save D: מסמך (בעריכה) F: קובץ תכן מונחה עצמים - 7

ד, מונחית עצמים תוכנה מבנה ביצוע המידע והפונקציונליות כמוסים בתוך (encapsulated) עצמים העברת הודעות בין אובייקטים שם מידע פעולות שם מידע פעולות הודעות שם מידע פעולות שם מידע פעולות : משתמש...... U D: Save_Yourself : D מסמך... Save F: Open_Yourself F: Save_Me(D) : F קובץ... Open Save תכן מונחה עצמים - 8

מ ד, מונחית העצמים התבנית יסוד paradigm) (Object Oriented ושגי (object) עצם ישות בדידה גבולות וזיהוי מוגדרים מכיל בתוכו מחלקה (encapsulates) מצב והתנהגות מצב = מבני נתונים - attributes data members, התנהגות = פעולות / פונקציות - methods member functions, (class) מתאר (descriptor) של קבוצת עצמים, בעלי מאפיינים משותפים: תכונות פעולות יחסים התנהגות מחלקות קיימות בקוד אך ורק ההגדרה בזמן עצמים קיימים בזכרון אך ורק הריצה בזמן תכן מונחה עצמים - 9

ומחלקות עצמים ד, עצמים (objects) היחידות הבסיסיות של התוכנה כל עצם מנהל את המידע שבאחריותו באמצעות הפונקציונליות שהוקנתה לו עצמים קיימים בזיכרון המחשב בזמן ריצת התוכנית ניתן לבנות/להרוס עצמים באופן דינמי תוך כדי ריצה = constructor פונקציה הבונה עצם חדש = destructor פונקציה ההורסת (מוחקת) עצם קיים מחלקות לכל עצם יש מפתח גישה ייחודי (classes) התבניות על פיהן נוצרים עצמים חדשים התבנית מכילה 3 תאים pointer),(handle, הניתן לו ברגע בנייתו (compartments) המחלקות מוגדרות בקוד הם מופעים ספציפיים עצמים עי כותב התוכנה של מחלקות (instances) שםם מאפיינים (מבני נתונים) פעולות (פונקציונליוּת) 10 - תכן מונחה עצמים

ותפעול של עצמים יצירה ד, Car + maker: string + model: string + licenseplate: string + testdate: Date - owner: Person + sellto(person) : void + getowner(int) : Person + testisvalid(date) : boolean thebluecar : Car maker = mazda model = CX-7 licenseplate = 12-345-67 testdate = 08/09/2010 owner = Lior עצם יצירת מכונית חדש thebluecar = new(car) פרטי המכונית איתחול thebluecar.maker = mazda thebluecar.model = CX-7 וטסט רישוי thebluecar.licenseplate = 12-345-67 thebluecar.testdate = 08/09/2010 thebluecar.sellto(lior) function sellto(x) : owner = X מכירה תכן מונחה עצמים - 11

העניינים תוכן ד, דרישות / החלטות המשפיעות על התכן וארגון התוכנה מבנה התבנית מונחית-העצמים מודל המחלקות תוכנה מפורטים תהליכי (class model) מודל רצפים model) (sequence ברמת התוכנה מודל מכונת מצבים (state machine model) UML סיכום תכן מונחה עצמים - 12

ד, מחלקות תרשים - תחביר (Class Diagram) מחלקה ClassName - privateattribute: Type + puplicattribute: Type - privatemethod(x:typex, Y:TypeY) : ReturnType + publicmethod(x:typex, Y:TypeY) : ReturnType A B שם המחלקה מאפיינים מתודות קשרים זיקה (משתנים) מאפיין פרטי: מאפיין ציבורי: (פונקציות) מתודה פרטית: מתודה ציבורית: (association) ניתן לגשת אליו רק מתוך המחלקה עצמה ניתן לגשת אליו גם מבחוץ ניתן לקרוא לה אך ורק מתוך המחלקה עצמה ניתן לקרוא לה גם מבחוץ A A B B ירושה (Inheritance) הקבצה (aggregation) 13 - תכן מונחה עצמים

ד, (Generalization) הכללה / (inheritance inheritance) ירושה יחס B מחלקה יורשת/מכלילה את מחלקה A: A מכילה את כל המאפיינים של B A מכילה את כל הפעולות של B בנוסף, B מכילה מאפיינים ופעולות משל עצמה B is-a A תת-מחלקה B היא ( של AAל sub-class ) מינוח לא מוצלח, כי B מכילה יותר מאשר A הירושה יוצר מבנה היררכי של מחלקות יחס אבסטרקטית מחלקה מחלקה שלא ניתן ליצור ממנה עצמים כל העצמים נוצרים ממחלקות היורשות אותה לדוגמה: כלי רכב מעלית כפתור זיהוי: קומה כפתור דולק: {כן, לא} לחיצה הדלקה/כיבוי קומה כפתור כיוון: {למעלה, למטה} תכן מונחה עצמים - 14

ביחסי ירושה בעיות ד, מרובה ירושה (multiple inheritance) מחלקה אחת יורש משתי מחלקות שונות הבעיה: הפתרון: עמוקה מדי ירושה עלולות להיווצר סתירות במאפיינים/פעולות רוב שפות התכנות אינן מרשות ירושה מרובה X ¾... ¾ C ¾ B ¾ A הבעיה: קושי במעקב אחר הקשר (קשיי תחזוקה) הפתרון: שבירת העץ בנקודות בהן הזיקה חלשה יותר מדומה ירושה לדוגמה: הבעיה: הפתרון: ריבוע הוא סוג של מלבן, למלבן יש שני מאפיינים לכן מלבן ¾ רוחב) (אורך, ריבוע (מבנה של עץ) ולריבוע רק אחד להגדיר את הירושה על בסיס תכונות משותפות (צלע) (מאפיינים/פעולות) תכן מונחה עצמים - 15

association - זיקה ד, (Company,Person) המגדיר מחלקות בין יחס היכרות היכרות = מצביעים הדדיים בין ממחלקות אלה עצמים המאפשרים הגדרה ברורה יותר של זיקה מאפיינים שם (name) + כיוון navigability multiplicity Company 0..1 0..* Person employer employs employee name role Company employs Person תפקיד (role) Company is the employer Person is the employee ריבוי (multiplicity) Company employs 0 or more Persons Person is employed by 0 or 1 company ניווט (navigability) Person knows who is its Company Company does not know its Persons תכן מונחה עצמים - 16

עצמית ומחלקת זיקה זיקה Company 0..1 employs 0..* Person manager 0..1 0..* subordinate report to Job Salary: integer self association ד, 0..1 Company 1 0..* Job Salary: integer 0..1 1 Person 0..* association class תכן מונחה עצמים - 17

(aggregation) הקבצה מיוחד של זיקה סוג ד, עצם ממחלקה B כל מכיל עצם (עצמים) ממחלקה A A is-part-of B סוגי הקבצה: שני B A ל- A יש קיום עצמאי שמות נוספים: logical aggregation shared aggregation הוא חלק בלתי נפרד מ- B A שמות נוספים: B A physical aggregation non-shared aggregation composition תכן מונחה עצמים - 18

ד, - הקבצה דוגמה הקבצה לוגית (aggregation) לפיסקה יש סגנון-פיסקה אחד סגנון יכול להיות משותף למספר פיסקאות הסגנון הוא ישות עצמאית, וקיומו אינו מותנה בקיום פיסקאות מחיקת פיסקה אינה מוחקת את הסגנון Paragraph Style Paragraph 1..* Word 1..* Font Style Character ניווט (navigation) התו מכיר את הסגנון הסגנון אינו מכיר את התוים המשויכים אליו 1 Style 0..* 0..* 1 1 1 הקבצה פיסית (composition) פיסקה מכילה לפחות מילה אחת כל המילים של הפיסקה שייכות אך ורק לפיסקה זו קיומה של המילה מותנה בקיומה של הפיסקה מחיקת פסקה מוחקת את כל המילים השייכות לה. 1. A Numbered Title This is the first paragraph of this document. It contains 17 words and 80 non-blank cha r ac t ers. תכן מונחה עצמים - 19

ד, מחלקות של מרחב הבעיה מודל בשלב הניתוח המערכתי ניתן לבנות מודל מובנה של עצמים, המייצגים את כבר מרחב הבעיה והקשרים ביניהם מונחי המטרה PDOM = Problem Domain Object Model הבהרה וחידוד של המונחים והיחסים ביניהם שימושים יישוב סתירות ואי-בהירויות במפרטי הלקוח מילון מונחים של המערכת בסיס למודל מחלקות עבור התוכנה ישויות המידע בהן נדרשת התוכנה לטפל תכן מונחה עצמים - 20

ד, המעליות איתור ראשוני של מחלקות מערכת מערכת הכוללת 3 מעליות משרתת בניין משרדים בן 10 קומות. בכל קומה, פרט לקומת הקרקע ולקומה העליונה, נמצאים שני כפתורים אחד לעליה ואחד לירידה. בקומת הקרקע נמצא כפתור אחד לעליה בלבד; בקומה העליונה נמצא כפתור אחד לירידה בלבד. משתמש הנמצא בקומה כלשהי ורוצה לנסוע במעלית לוחץ על הכפתור המתאים לכיוון הנסיעה המבוקש. אם לא היה דלוק קודם לכן, נדלק הכפתור בעקבות הלחיצה. מעלית כלשהי הנמצאת בכיוון הנסיעה המבוקש תגיע לקומה, תוך דקה לכל היותר. עם הגעתה תיפתח הדלת והכפתור יכבה. בתוך כל מעלית נמצאים 10 כפתורים אחד עבור כל קומה. כמו כן נמצאים במעלית כפתור לעצירת חירום וכפתור להזעקת חילוץ. משתמש הנמצא בתוך המעלית ורוצה להגיע לקומה כלשהי לוחץ על הכפתור המתאים. אם לא היה דלוק קודם נדלק הכפתור בעקבות הלחיצה ולמעלית נוספת בקשה לעצירה בקומה המתאימה. כאשר תגיע המעלית לקומה המבוקשת היא תיעצר, הדלת תפתח והכפתור המתאים לקומה יכבה. לאחר השהיה תיסגר הדלת והמעלית תמשיך בפעולתה. המערכת בנויה ופועלת על פי דרישות הבטיחות והאמינות שנקבעו בתקן המחייב למעליות. איש האחזקה של הבניין הוכשר לחלץ נוסעים תקועים באמצעות פאנל הפעלה מיוחד הנמצא בחדר המכונות. על פי תקנות משרד העבודה נבדקת המערכת אחת לששה חודשים בידי טכנאי מוסמך. בזמן הבדיקה לא ניתן להשתמש במערכת. תכן מונחה עצמים - 21

ד, ראשוני אפיון (חלקי) של מחלקות פוטנציאליות מקורות: מסמכי הלקוח Use Case Model קומה מעלית כפתור רלוונטי לכפתור-מעלית בלבד רלוונטי לכפתור-קומה בלבד דולק: {כן, לא} זיהוי: קומה כיוון: {למעלה, למטה} לחיצה הדלקה/כיבוי זיהוי מצב: {פעילה, מושבתת} תקינות: {תקינה, מקולקלת} מיקום: קומה תכנית: תור של בקשות נסיעה (כיוון) עצירה מספר? נוסע דלת שיוך: מעלית מצב: {פתוחה, סגורה} עצירה בקשת שיוך: מעלית יעד: קומה פתיחה ביטול פתיחה/סגירה?? תכן מונחה עצמים - 22

ד, PDOM - המעליות מערכת class PDOM use «<<abstract>>» TravelButton - islit: boolean + putlight(byte) : void + require(floor) : void 1..10 FloorButton + dirlabel: up_down 1 ElevatorButton + floorlabel: int +location is_at 1..2 Floor + floorno: int goes_to 10 1 10 +destination represents 0..3 0..* User Elevator generates 0..* StopRequest - destination: Floor RescueButton 0..* 1 + isactive: boolean + isinorder: boolean + Location: Floor + startoperation() : void 1 1 0..* «abstract» Button + press() : void StopButton 1 Door + isclosed: boolean + open() : void + close() : void Motor + goto(floor) : void 23 - תכן מונחה עצמים

ד, הדרישות הפונקציונליות למודל המחלקות עקיבות הפונקציונליות שבמודל המחלקות אמורות לספק את כל המחלקות המערכתית בטבלת הדרישות יש להצביע למחלקה או פונקציונלית דרישה מכל הרלוונטיות למחלקות משתתפות בדרישה תפעולית (OR) לדוגמה: אם לא היה דלוק קודם נדלק הכפתור בעקבות הלחיצה מספקות את מבני הנתונים עבור דרישות המידע (DR) לדוגמה: בכל קומה יהיו שני כפתורים קומה כפתור הפונקציונליות מחלקה במודל המחלקות יש להצביע על הדרישות מכל לה הרלוונטיות תכן מונחה עצמים - 24

מחלקות ברמת התוכנה מודל ד, התוכנה הגדירה רכיבי תוכנה וממשקים ביניהם ארכיטקטורת תכן מפורט של התוכנה: מבנה והתנהגות התוכנה של כל רכיב תוכנה רכיב (software component) המטרה כמערכת לספק את הפונקציונליות שהוקצתה לרכיב בתהליכים המערכתיים המרכיבים המבנה מחלקות מודל מחלקות הפעולה המשותפת (בזמן ריצה: העצמים הנוצרים מהן) אינטראקציה בין עצמים (תתואר באמצעות B A D C (sequence diagrams 25 - תכן מונחה עצמים

לעצמים בתוכנה מועמדים ד, המייצגים ישויות פיזיות עצמים דלת, (מנוע, עבודה, עמדת (... מאפיינים: פרמטרים ונתונים לגבי הישות, קלט/פלט מתודות: פונקציונלית פיזית העצם המייצג משמש, המייצגים ישויות לוגיות עצמים למעשה, כממשק שבית התוכנה לישות הפיזית שירות, (תהליך, (... מאפיינים: פרמטרים ונתונים לגבי הישות, קלט/פלט מתודות: פעולות המשמשות את התהליך/השירות המייצגים ישויות מידע עצמים (מאגרי נתונים, תורים, רשימות, (... מאפיינים: רכיבי המידע שבאחריות הישות מתודות: פעולות על המידע (אחסון, שליפה, עדכון, המייצגים עצמים הנמצאים ברכיב תוכנה אחר עצמים (... שיקוף של העצמים החיצוניים מימוש ממשקי תוכנה-תוכנה דרך תווך של חומרה תכן מונחה עצמים - 26

מודל מחלקות לרכיב תוכנה בניית ד, מקורות PDOM SRS מחלקות שצריכות להיות באחריות הרכיב מחלקות-אב שמהן ניתן לגזור מחלקות לרכיב תהליכי תוכנה (Use Cases, Sequence Diagrams) ספריות תוכנה מחלקות הקצאת הפונקציונליות של הרכיב למחלקות (מאפיינים ומתודות) מן המדף אותן ניתן לשלב בתוכנה הייעודית תכן מונחה עצמים - 27

class PDOM use רכיב תפעול מעלית מה- PDOM מחלקות רלוונטיות TravelButton ד, FloorButton + dirlabel: up_down 1..2 +location is_at Floor + floorno: int goes_to User 0..* - islit: boolean + putlight(byte) : void + require(floor) : void Elev atorbutton 1 1 represents 10 +destination 1..10 + floorlabel: int 10 0..3 Elevator 0..* StopRequest - destination: Floor RescueButton 0..* 1 + isactive: boolean + isinorder: boolean + Location: Floor + startoperation() : void 1 1 0..* «abstract» Button + press() : void StopButton 1 Door + isclosed: boolean + open() : void + close() : void Motor + goto(floor) : void תכן מונחה עצמים - 28

ד, (Java) קוד ממודל המחלקות הפקת class PDOM Floor TravelButton + floorno: int - islit: boolean + putlight(byte) : void + require(floor) : void ElevatorButton 1 1 represents + floorlabel: int 1..10 public abstract class Button { StopRequest public void press(){ } 0..* - destination: Floor } public class TravelButton extends Button { «abstract» Button + press() : void private boolean islit; public StopRequest m_stoprequest; public void putlight(byte on_off){ } public void require(floor floor){ } } public class ElevatorButton extends TravelButton { public int floorlabel; public Floor m_floor; } תכן מונחה עצמים - 29

ד, המארזים מודל מארז (Package) = אוסף של ישויות מאותו סוג,Use Cases מחלקות, רכיבים, מארזים תלות מהי תלות? (dependency) מארזים בין אלמנטים ממארז אחד נדרשים לוודא שהתלות בין המארזים איננה מעגלית יש להכיר אלמנטים ממארז אחר מפריע לייצוב הפיתוח מארזים תרשים (package diagram) אוסף של מארזים והתלויות שביניהם Class A Class C Class B UC-1 <<include>> UC-2 <<extend>> UC-3 C2 C3 C1 תכן מונחה עצמים - 30

dependency - תלות (relationship) יחס ישות עצמאית ישות תלויה שתי ישויות בין שינוי כלשהו בישות העצמאית עלול להשפיע על הישות התלויה יכולה להתקיים גם בין ישויות שאין ביניהן זיקה תלות (association) ישות עצמאית כלשהי לדוגמה: עצם ממחלקה כלשהי מועבר כפרמטר לפונקציה של מחלקה אחרת ישות תלויה תלויות בין מחלקות Building Person בדיקה Useתלויות Cases בין ד, Theatre Seat Sell(Person) חילוץ נסיעה במעלית תכן מונחה עצמים - 31

(1) Use Cases למארזים על בסיס חלוקה לפי סוג תפעול חלוקה מערכת המעליות 1. הזמנת מעלית <<extend>> טכנאי 3. בדיקה נוסע 2. נסיעה במעלית 4. תיקון 5. חילוץ מחלץ ד, התלות הנוצרת בין המארזים: הפעלה מיוחדת הפעלה שגרתית ü תכן מונחה עצמים - 32

(2) Use Cases למארזים על בסיס חלוקה לפי שחקנים חלוקה מערכת המעליות 1. הזמנת מעלית <<extend>> טכנאי 3. בדיקה נוסע 2. נסיעה במעלית 4. תיקון 5. חילוץ מחלץ ד, התלות הנוצרת בין המארזים: פעולות טכנאי פעולות מחלץ ü פעולות נוסע תכן מונחה עצמים - 33

(3) Use Cases למארזים על בסיס חלוקה שרירותית חלוקה מערכת המעליות 1. הזמנת מעלית <<extend>> טכנאי 3. בדיקה נוסע 2. נסיעה במעלית 4. תיקון 5. חילוץ מחלץ ד, התלות הנוצרת בין המארזים: מארז א' מארז ב' û תכן מונחה עצמים - 34

של מחלקות מחלקות מארזים פרטיות ד, ומשותפות CommonClassPackage יחסי התלות הנגזרים מזיקות ההקבצה (האדומים) יוצרים מעגלי תלות. כיצד ניתן לפתור זאת? «<<abstract>>» TravelButton - islit: boolean + putlight(byte) : void + require(floor) : void 1..10 «abstract» Button + press() : void 0..* generates StopRequest - destination: Floor CentralControlPackage FloorButton + dirlabel: up_down PendingRequestList + allocaterequest(stoprequest) : void 0..* allocatesto ElevatorControllerPackage ElevatorButton + floorlabel: int 10 0..3 RescueButton Elevator + isactive: boolean + isinorder: boolean + Location: Floor 1 StopButton 1 + startoperation() : void 35 - תכן מונחה עצמים

העניינים תוכן ד, דרישות / החלטות המשפיעות על התכן וארגון התוכנה מבנה התבנית מונחית-העצמים מודל המחלקות תוכנה מפורטים תהליכי (class model) מודל רצפים model) (sequence ברמת התוכנה מודל מכונת מצבים (state machine model) UML סיכום תכן מונחה עצמים - 36

ד, רצף Diagram Sequence תרשים אינטראקציה תהליכים כרצף של פעילויות, המתבצעות תוך תיאור הסביבה לבין פונקציונליות, ובינן בהקשר הנוכחי (תהליכי תוכנה): ישויות פונקציונליות = רכיבי תוכנה הסביבה (שחקנים) = רכיבי חומרה אוטונומיים או מופעלי-אנוש ישויות י בין אינטראקציה = העברת הודעות (הודעה = קריאה לפונקציה/שירות של ישות אחרת) שחקן 1 ישות A ישות B קו חיים שחקן 2 life line 1.2 הודעה ג' 1.3 הודעה עצמית 1.1 הודעה ב' 1.0 הודעה א' 1.5 חזרה א' הודעה סינכרונית המתנה לחזרה 1.4 חזרה ב' הודעה א-סינכרונית שגר ושכח הפעלה activation 37 - ניתוח וארכיטקטורת תוכנה

אינטראקציה מסגרות ד, (Interaction Frames) קטעים בקרה מבני מסגרות סוגי תחומים בתוך תרשים רצף, המציינים קינון (fragments),(nesting) (control blocks) (אופרטורים) וכדומה seq,sd מסגרת המגדירה תרשים רצפים נפרד par קטעים המתבצעים במקביל קטע קריטי היכול להתבצע עי thread אחד בלבד בו-זמנית region קטע שלילי (אינטראקציה בלתי חוקית) neg קטע המוגדר במקום אחר (קופסה שחורה) קטעים חלופיים, בציון התנאים לביצוע כל חלופה ref alt Operator [condition] לולאה, בציון תנאי הלולאה קטע אופציונלי, בציון התנאי loop opt ניתוח וארכיטקטורת תוכנה - 38

נסיעה במעלית UC :sequence מימוש diagram תפעול מעלית פאנל נוסע ד, על כפתור במעלית אינה משפיעה ישירות על נסיעת המעלית למעשה, לחיצה : מסקנה הלחיצה מייצרת בקשת עצירה, שתתמלא כאשר המעלית תגיע לקומה המתאימה א-סינכרוניים המתבצעים במקביל: שני תהליכים יש נסיעה ייזום ונסיעה בין קומות par ()לחיצה על כפתור במעלית 1.0 ייזום נסיעה seq ()הדלקת הכפתור 1.1 1.3 התייחסות ל- SD המוגדר במקום אחר (יוצג בהמשך) ()רישום בקשת עצירה בקומה 1.2 ref נסיעה בין קומות 39 - ניתוח וארכיטקטורת תוכנה

ד, הזמנת מעלית UC :sequence מימוש diagram לחיצה לצורך הזמנת מעלית לקומה אינה משפיעה מיידית על הנסיעה גם הפיקוד המרכזי מקבל את הבקשות מכפתורי הקומות וצריך להקצות מעלית מתאימה תפעול מעלית פיקוד מרכזי פא נל קומה par הזמנת מעלית לקומה seq ()לחיצה על כפתור בקומה 1.0 ()הדלקת כפתור קומה 1.1 loop ()בירור מיקום וכיוון 1.2 ()רישום בקשת עצירה בקומה 1.6 מיקום וכיוון: 1.3 ()הקצאת מעלית 1.4 ()בקשת עצירה 1.5 [עבור כל המעליות הפעילות] ref 1.8 1.7 נסיעה בין קומות 40 - ניתוח וארכיטקטורת תוכנה

:sequence diagram בין קומות נסיעה פיק וד מרכזי תפעול מעלית ד, דלת פאנל נוסע פאנל קומה מנוע ()איתחול פעילות 1.0 נסיעה בין קומות seq loop ()סגירת דלת 1.1 [כל עוד קיימות בקשות עצירה] 1.2 ()נסיעה לקומה 1.3 ()עצירה 1.4 alt ()ביטול כל הבקשות 1.5 [המעלית נתקעה] endpoint ref חילוץ נוסע ()הזעקת חילוץ 1.6 ()כיבוי כפתור מעלית 1.7 ()פתיחת דלת 1.8 [המעלית נעצרהבקומה] 1.9 1.12 ()כיבוי כפתור קומה 1.11 ()חיווי הגעה 1.10 ()השהיה 1.13 41 - ניתוח וארכיטקטורת תוכנה

תהליכי התוכנה מימוש של כל רכיב באמצעות עצמים בתוכנה הפונקציונליות מימוש פונקציונליות הרכיב תפקודו במסגרת מימוש התהליכים המערכתיים עצמים בתוכנה על בסיס מודל המחלקות של הרכיב ד, A Comp1 B D C a:a b:b c:c 42 - תכן מונחה עצמים

בין קומות נסיעה פונקצית פעילות שלל איתחול תפעול מעלית פיק וד מרכזי תפעול מעלית ד, דלת פאנל נוסע פאנל קומה מנוע ()איתחול פעילות 1.0 נסיעה בין קומות seq loop ()סגירת דלת 1.1 [כל עוד קיימות בקשות עצירה] 1.2 ()נסיעה לקומה 1.3 ()עצירה 1.4 alt ()ביטול כל הבקשות 1.5 [המעלית נתקעה] endpoint ref חילוץ נוסע ()הזעקת חילוץ 1.6 ()כיבוי כפתור מעלית 1.7 ()פתיחת דלת 1.8 [המעלית נעצרהבקומה] 1.9 1.12 ()כיבוי כפתור קומה 1.11 ()חיווי הגעה 1.10 ()השהיה 1.13 43 - ניתוח וארכיטקטורת תוכנה

ד, פונקציית מימוש פעילות של רכיב איתחול תפעול מעלית :Elevator mydoor :Door SRx :StopRequest mymotor :Motor ButF :ElevatorButton F :Floor 1.0 startoperation() loop [forever] 1.1 close() 1.2 closingphisicaldoor() 1.3 1.4 SRx= getnextrequest() 1.5 F= getnextfloor() 1.6 1.7 goto(f) 1.9 1.8 drivingphisicalmotor() procedure startoperation () do while (inorder && isactive) mydoor.close(); SRx = getnextrequest(); F = SRx.getNextFloor() mymotor.goto(f); mybuttons[f].putlight(off); mydoor.open(); F.notifyArrival; delay(t); end do; end startoperation; 1.11 open() 1.12 openingphysicaldoor() 1.10 putlight(off) 1.13 1.16 delay(t) 1.14 notifyarrival() 1.15 notifyserver() 44 - תכן מונחה עצמים

העניינים תוכן ד, דרישות / החלטות המשפיעות על התכן וארגון התוכנה מבנה התבנית מונחית-העצמים מודל המחלקות תוכנה מפורטים תהליכי (class model) מודל רצפים model) (sequence ברמת התוכנה מודל מכונת מצבים (state machine model) UML סיכום תכן מונחה עצמים - 45

/ המעלית דלת ד, משלימות דרישות נגזרות יש שני כפתורים עבור הדלת במעלית Open Door (OD) Close Door (CD) המזהה מעבר של גוף דרך הדלת (detector) יש עינית בדלת פתיחה או סגירה של דלת תושמע הודעה קולית מתאימה בעת המעלית לא פעילה היא חונה בקומה כלשהיא עם דלת סגורה כאשר על כפתור קומה בה חונה מעלית תגרום לפתיחת הדלת לחיצה CD פתוחה תיסגר אחרי השהיה נתונה או כאשר נלחץ כפתור דלת יכולה לנסוע רק כאשר הדלת סגורה במלואה המעלית עוד המעלית בתנועה שום אירוע לא יגרום לפתיחת הדלת כל עצירת מעלית בקומה כלשהיא הדלת נפתחת לאחר עוד הדלת לא סגורה כל אחד מהאירועים הבאים יביא לפתיחתה: כל לחיצה על כפתור OD זיהוי של העינית לחיצה על כפתור קומה בקומה בה היא נמצאת תכן מונחה עצמים - 46

מכונת-מצבים מודל (State-Machine Model) מצבים מכונת אוטומט (מודל מתימטי) מודל דינמי לתיאור התנהגות המודל שימושי ברמה המערכתית ברמת המחלקה אפיון ההתנהגות הכוללת של מערכת מחזור החיים של אובייקט ד, הדלקה off התקנה הישרפות כיבוי תכן מונחה עצמים - 47

מצבים תרשים ד, State Chart מצב (State) מצב רגיל/פסיבי (למשל: ממתין) מצב פעיל (למשל: מעבד) (Transition) מעבר אירוע שינוי מצב הנגרם בעקבות אירוע או תנאי (Event) תנאי גורם למעבר ממצב למצב (למשל: הדלקת מתג) (Guard) פעולה מתנה את השפעת האירוע (Action) מתרחשת בעת מעבר או בתוך מצב בכניסה למצב action) (entry/ ביציאה ממצב action) (exit/ במהלך ש ה יה במצב פעיל action) (do/ (למשל: הדלקת מתג [הדלת סגורה]) State A State B event [guard] / action תכן מונחה עצמים - 48

state chart מעלית דלת ד, stopped at floor or OD pressed [not in travel] or detector disturbed [not in travel] or Opening entry/ my_elevator:disable()? entry/ play_msg(opening) do/ loop: check_door floor button pressed [parked at floor] [door fully open] Closed entry/ my_elevator:enable() exit/ my_elevator:disable() shutdown [door fully closed] Closing entry/ play_msg(closing) do/ loop: check_door OD pressed or detector disturbed or floor button pressed Open entry/ set timer do/ loop: timer = timer-1 CD pressed or [timer == 0] תכן מונחה עצמים - 49

Event Handler מעלית דלת ד, (קטע) void EventHandler(event EventClass)... switch (event): { case OD_Pressed if (current_state==closing) { my_elevator.disable(); play_msg( opening );... current_state=opening; } break; Opening entry/ my_elevator:disable() entry/ play_msg(opening) do/ loop: check_door OD pressed or detector disturbed or floor button pressed? Closing entry/ play_msg(closing) do/ loop: check_door תכן מונחה עצמים - 50

ד, תכן התוכנה פעילות - סיכום קלט ארכיטקטורת התוכנה מודל רכיבים (component model) מפרט תהליכי התוכנה use case model עיקריים תוצרים מבנה וארגון התוכנה מודל מחלקות model) (class תהליכי תוכנה מפורטים מודל מכונת מצבים model) (state machine מודל רצפים model) (sequence זמן בדיקות מערכת בסביבת התפעול שילוב חומרה / תוכנה ובדיקות מערכת שילוב רכיבים ובדיקות פריטים שילוב יחידות ובדיקות רכיבים מימוש, שילוב ובחינה Implementation, Integration and Testing קידוד ובדיקת יחידות תכן תוכנה ניתוח וארכיטקטורת תוכנה ניתוח וארכיטקטורת מערכת הגדרת דרישות הלקוח ובעלי העניין System הגדרה ופירוט Definition and Specification רמת עניין Business Software CSC CSCI CSU תכן מונחה עצמים - 51

העניינים תוכן ד, דרישות / החלטות המשפיעות על התכן וארגון התוכנה מבנה התבנית מונחית-העצמים מודל המחלקות תוכנה מפורטים תהליכי (class model) מודל רצפים model) (sequence ברמת התוכנה מודל מכונת מצבים (state machine model) UML סיכום תכן מונחה עצמים - 52

UML מערכתית אופיינית בייצוג היררכיה (תזכורת) Business Level Node1 Business Software Intensive System Node2 System Level Operator Artifact2 Artifact1 User «manifest» Item (CSCI) Level «manifest» Component1 Component2 ד, Component (CSC) Level Class1 - att1: int Class2 - att2: int Unit (CSU) Level + op1() : void + op2() : void תכן מונחה עצמים - 53

UML סיכום טבלת - מודלים אופייניים ברמות השונות רמה מודלים סטטיים (מבנה) מודלים דינמיים (התנהגות) Business-Level UC Model חופשי Class Model (PDOM) / ארגון עסק System Level UC Model Activity Diagram State Machine Diagram Deployment Model מערכת S/W Level UC Model Sequence Diagram (components) Component Model תוכנה פריט ד, Sequence Diagrams (objects) State Machine Diagrams Class Model תוכנה רכיב תכן מונחה עצמים - 54

ד, תכן התוכנה פעילות קלט ארכיטקטורת התוכנה מודל רכיבים (component model) מפרט תהליכי התוכנה use case model עיקריים תוצרים מבנה וארגון התוכנה מודל מחלקות model) (class תהליכי תוכנה מפורטים מודל מכונת מצבים model) (state machine מודל רצפים model) (sequence זמן בדיקות מערכת בסביבת התפעול שילוב חומרה / תוכנה ובדיקות מערכת שילוב רכיבים ובדיקות פריטים שילוב יחידות ובדיקות רכיבים מימוש, שילוב ובחינה Implementation, Integration and Testing קידוד ובדיקת יחידות תכן תוכנה ניתוח וארכיטקטורת תוכנה ניתוח וארכיטקטורת מערכת הגדרת דרישות הלקוח ובעלי העניין System הגדרה ופירוט Definition and Specification רמת עניין Business Software CSC CSCI CSU תכן מונחה עצמים - 55